package com.car.service.upload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.springframework.web.multipart.commons.CommonsMultipartFile;

import com.car.bean.UploadObj;

public interface FileUploadService {
	/**
	 * 
	 * @param file
	 *            spring 里的文件类型
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 * @throws IOException
	 */
	public UploadObj uploadFile(CommonsMultipartFile file, String model_path)
			throws IOException;

	/**
	 * 上传普通文件
	 * 
	 * @param input
	 *            普通文件流
	 * @param fileName
	 *            文件名
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 */
	public UploadObj uploadFile(FileInputStream input, String fileName,
			String model_path);

	/**
	 * 上传普通文件
	 * 
	 * @param file
	 *            普通文件
	 * @return 文件对象
	 * @param model_path
	 *            模块路径
	 * @throws FileNotFoundException
	 */
	public UploadObj uploadFile(File file, String model_path)
			throws FileNotFoundException;

	/**
	 * 上传图片
	 * 
	 * @param file
	 *            spring-file
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 * @throws IOException
	 */
	public UploadObj uploadImgFile(CommonsMultipartFile file, String model_path)
			throws IOException;

	/**
	 * 上传图片
	 * 
	 * @param file
	 *            spring-file
	 * @param img_type
	 *            上传之后是不是要 缩略图或者截图
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 * @throws IOException
	 */
	public UploadObj uploadImgFile(CommonsMultipartFile file, int img_type,
			String model_path) throws IOException;

	/**
	 * 上传图片
	 * 
	 * @param file
	 *            spring-file
	 * @param x
	 *            从x坐标什么地方开始
	 * @param y
	 *            从y坐标什么地方开始
	 * @param wid
	 *            长度
	 * @param hig
	 *            高度
	 * @param img_type
	 *            缩略图或者截图
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 * @throws IOException
	 */
	public UploadObj uploadImgFile(CommonsMultipartFile file, int x, int y,
			int wid, int hig, int img_type, String model_path)
			throws IOException;
	/**
	 * 
	 * 车友圈图片上传
	 * @param file
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 * @throws IOException
	 */
	public UploadObj uploadappImgFile(CommonsMultipartFile file, int x, int y,
			int wid, int hig, int img_type, String model_path)
			throws IOException;
	/**
	 * 上传图片
	 * 
	 * @param file
	 *            普通文件类型
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 * @throws IOException
	 */
	public UploadObj uploadImgFile(File file, String model_path)
			throws IOException;

	/**
	 * 上传图片
	 * 
	 * @param file
	 *            普通文件类型
	 * @param img_type
	 *            缩略图或者截图
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 * @throws IOException
	 */
	public UploadObj uploadImgFile(File file, int img_type, String model_path)
			throws IOException;

	/**
	 * 上传图片
	 * 
	 * @param file
	 *            普通文件类型
	 * @param x
	 *            从x坐标什么地方开始
	 * @param y
	 *            从y坐标什么地方开始
	 * @param wid
	 *            长度
	 * @param hig
	 *            高度
	 * @param img_type
	 *            缩略图或者截图
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 * @throws IOException
	 */
	public UploadObj uploadImgFile(File file, int x, int y, int wid, int hig,
			int img_type, String model_path) throws IOException;

	/**
	 * 上传图片
	 * 
	 * @param file
	 *            spring 里的文件类型
	 * @param length
	 *            图片尺寸（长度或高度）
	 * @param img_type
	 *            缩略图或者截图
	 * @param model_path
	 *            模块路径
	 * @return 文件对象
	 * @throws IOException
	 */
	public UploadObj uploadImgFile(CommonsMultipartFile file, int length,
			int img_type, String model_path) throws IOException;
	
	/**
	 * 原文件小图
	 * 
	 * @throws IOException
	 * */
	public UploadObj uploadorignalImgFile(CommonsMultipartFile file,String model_path) throws IOException;
}